package com.huawei.su;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author: liu.cheng.su
 * @Time: 2023/10/4 0004 22:08
 * @Description:
 */
public class BM16 {
    public static void main(String[] args) {
        ListNode listNode1 = new ListNode(1);
        ListNode listNode2 = new ListNode(1);
//        ListNode listNode3 = new ListNode(2);
//        ListNode listNode4 = new ListNode(3);
//        ListNode listNode5 = new ListNode(3);
        listNode1.next = listNode2;
//        listNode2.next = listNode3;
//        listNode3.next = listNode4;
//        listNode4.next = listNode5;

        deleteDuplicates(listNode1);
    }

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * @param head ListNode类
     * @return ListNode类
     */
    public static ListNode deleteDuplicates(ListNode head) {
        // write code here
        if (head == null || head.next == null) {
            return head;
        }
        ListNode tempHead = new ListNode(Integer.MIN_VALUE);
        tempHead.next = head;

        ListNode index = tempHead;

        Map<Integer, Integer> map = new HashMap<>();
        while (true) {
            if (index.next == null) {
                break;
            }
            if(map.containsKey(index.next.val)){
                index.next = index.next.next;
                continue;
            }

            if (index.next.next != null
                    && index.next.val == index.next.next.val) {
                map.put(index.next.val, 1);
                index.next = index.next.next.next;
                continue;
            }
            index = index.next;
        }
        return tempHead.next;
    }
}
